Colin Walters [Sun, 23 Sep 2012 19:16:33 +0000 (15:16 -0400)]
core: Drop packfiles as they are now
They're not a large efficiency win at the moment, because we don't
do any delta compression.
At the moment, they simply served to compress data, but we will change
the archive mode to do that by default.
Colin Walters [Sun, 23 Sep 2012 19:56:28 +0000 (15:56 -0400)]
tests: Drop tests of removed --atomic-retarget option
Colin Walters [Sun, 23 Sep 2012 19:55:02 +0000 (15:55 -0400)]
diff: Fix case when used on native files
Colin Walters [Fri, 21 Sep 2012 00:11:59 +0000 (20:11 -0400)]
packaging: Update spec file per Fedora review
See https://bugzilla.redhat.com/show_bug.cgi?id=819951
Colin Walters [Thu, 20 Sep 2012 22:48:03 +0000 (18:48 -0400)]
packages: Update ostree.spec for file changes
Colin Walters [Thu, 20 Sep 2012 22:00:04 +0000 (18:00 -0400)]
packages: Tweak srpm command
This spec should be usable for both embedded dependencies and not.
Colin Walters [Tue, 18 Sep 2012 12:39:26 +0000 (08:39 -0400)]
admin: Initialize /var more fully
This helps out gnome-ostree, because gdm needs /var/lib for example.
Giovanni Campagna [Fri, 14 Sep 2012 21:57:20 +0000 (23:57 +0200)]
Grub2: use /etc/system-release now that we have one
This matches the upstream code more, and avoids the GNOME OS trademark
in ostree, which is otherwise platform agnostic.
https://bugzilla.gnome.org/show_bug.cgi?id=684049
Giovanni Campagna [Sun, 16 Sep 2012 21:56:13 +0000 (23:56 +0200)]
Add /ostree/current-etc symlink to current configuration
Configuration associated with a specific revision is stored in a folder
named <revision>-etc. In a similar spirit, add /ostree/current-etc, pointing
to the -etc folder for the revision named by current. This allows
easy editing of configuration from the host distribution, and allows
diffing current/etc and current-etc for configuration changes.
https://bugzilla.gnome.org/show_bug.cgi?id=684049
Giovanni Campagna [Fri, 14 Sep 2012 21:58:58 +0000 (23:58 +0200)]
Update kernel files for command naming changes
ostadmin is now ostree admin.
https://bugzilla.gnome.org/show_bug.cgi?id=684049
Colin Walters [Sat, 15 Sep 2012 16:34:04 +0000 (12:34 -0400)]
pull: Check the remote repo type
We can only pull from archive repositories right now. This will also
be useful for adding compressed archives later.
Colin Walters [Sat, 15 Sep 2012 15:20:18 +0000 (11:20 -0400)]
Extract keyfile helpers into libotutil
Will be used by ostree-pull too soon.
Colin Walters [Sun, 9 Sep 2012 15:42:17 +0000 (11:42 -0400)]
ostadmin: Fix up deploy config logic again
Clearly we need tests here...
Colin Walters [Sun, 9 Sep 2012 15:31:22 +0000 (11:31 -0400)]
admin: Ensure we pass options to subcommands
Otherwise ostree admin --ostree-dir=/foo deploy --no-kernel bar
doesn't work.
Colin Walters [Sun, 9 Sep 2012 14:42:13 +0000 (10:42 -0400)]
update-kernel: Fix free -> g_object_unref
Colin Walters [Sat, 8 Sep 2012 22:46:50 +0000 (18:46 -0400)]
Move "ostadmin" => "ostree admin"
This helps us avoid polluting the global binary namespace.
Colin Walters [Fri, 22 Jun 2012 22:41:59 +0000 (18:41 -0400)]
Make /etc a writable mount
First, move deployments to /ostree/deploy. Having them in the
toplevel clutters the filesystem layout too much.
When we deploy a tree like /ostree/deploy/NAME, there is now also a
writable directory /ostree/deploy/NAME-etc. This is mounted as
read-write inside the system.
On an initial install, that directory is copied from
/ostree/deploy/NAME/etc. On subsequent deployments, we find any
changes made in the current deployment's /etc, and apply that set of
changes to the new deployment's /etc.
See https://live.gnome.org/OSTree/EverythingInEtcIsABug
Colin Walters [Mon, 3 Sep 2012 17:43:42 +0000 (10:43 -0700)]
otutil: Add a few more helper functions
To be used by wip/etc-writable branch.
Colin Walters [Fri, 31 Aug 2012 21:49:58 +0000 (14:49 -0700)]
core: Refactor diff to be an internal API
For future use by other code.
Colin Walters [Fri, 31 Aug 2012 00:42:36 +0000 (17:42 -0700)]
ostadmin: Also ensure /ostree/modules exists
We depend on host kernel for now.
Colin Walters [Tue, 28 Aug 2012 14:14:11 +0000 (10:14 -0400)]
build: Add dist-snapshot
Take the current git HEAD and make a tarball from it; should be useful
for putting snapshots into Poky.
Colin Walters [Tue, 28 Aug 2012 13:58:07 +0000 (09:58 -0400)]
Use correct libgsystem
Accidentally pushed a local patch.
Colin Walters [Tue, 28 Aug 2012 13:45:39 +0000 (09:45 -0400)]
Merge remote-tracking branch 'aperezdc/fixes'
Adrian Perez [Tue, 28 Aug 2012 13:36:07 +0000 (16:36 +0300)]
configure.ac: Fix checks for libarchive
When configuring without passing --enable-triggers-only, checks for
libarchive were not being done. Shuffling around the checks solves
the issue.
Colin Walters [Mon, 27 Aug 2012 22:48:14 +0000 (18:48 -0400)]
Update libgsystem
Colin Walters [Mon, 27 Aug 2012 20:07:39 +0000 (16:07 -0400)]
core: Use O_NOATIME to open metadata
We really don't need atime for metadata, it's just a speed hit.
Colin Walters [Mon, 27 Aug 2012 15:53:06 +0000 (11:53 -0400)]
repo: Call fdatasync() before adding objects to the repo
I run builds on my laptop, but it also crashes about 1/4 of the time
while suspending. It's definitely undesrirable to get e.g. empty
.dirtree objects because they corrupt builds. Concretely, I was
getting empty contents committed for xorg-util-macros.
Now, we used to write out temporary files using g_file_replace() which
does a fsync() during close, but then switched to a more "manual"
g_file_append_to().
We could switch back to g_file_replace(), but the problem is, we don't
want to call fsync() on temporary files in the case where we already
have the object. Attempting to add an object we already have is a
*very* common case.
This is both the old and new code sequence for the case where an
object is already stored:
open(temp, O_WRONLY)
write() write() write()
close()
lstat(objects/3a/9fe332...) = 0
unlink(temp)
In the *new* code, here's the case where an object *isn't* stored:
open(temp, O_WRONLY)
write() write() write()
close()
lstat(objects/3a/9fe332...) = -1
open(temp, O_RDONLY)
fdatasync()
close()
rename(temp, objects/3a/9fe332)
Compare with the *old* code path for when an object isn't stored:
open(temp, O_WRONLY)
write() write() write()
close()
lstat(objects/3a/9fe332...) = -1
link(temp, objects/3a/9fe332)
unlink(temp)
The problem with this is we really need to fdatasync(). Also doing
just rename() instead of the weird link()/unlink() helps us express to
the filesystem that we want atomic semantics. For example, BTRFS has
special handling for rename().
Colin Walters [Mon, 27 Aug 2012 15:39:44 +0000 (11:39 -0400)]
traverse: Set an explicit error when loading a corrupted commit
I had a empty files for a .commit and .dirmeta, and previously we were
segfaulting.
Colin Walters [Thu, 23 Aug 2012 14:45:59 +0000 (10:45 -0400)]
ostadmin: Cosmetic change for option defaults
Colin Walters [Thu, 23 Aug 2012 14:45:23 +0000 (10:45 -0400)]
ostadmin: Add --ostree-dir option to init
Matches the option for deploy.
Colin Walters [Sun, 26 Aug 2012 20:35:44 +0000 (16:35 -0400)]
repo: Ensure all stored files are readable
We really don't have a sane story for private files. This is a
defensive step ensuring that with old versions of gnome-ostree,
components that mistakenly have un-world-readable files don't break
pulls.
Colin Walters [Sun, 26 Aug 2012 15:43:09 +0000 (11:43 -0400)]
Release 2012.9
Colin Walters [Sun, 26 Aug 2012 16:46:14 +0000 (12:46 -0400)]
build: Add --enable-triggers-only
For bootstrapping gnome-ostree, we need to install the triggers early
on, before we actually build the real ostree binary.
Colin Walters [Sat, 25 Aug 2012 19:55:43 +0000 (15:55 -0400)]
prune: Don't fail if an object isn't found
We expect most people to have partial repositories.
Colin Walters [Sat, 25 Aug 2012 19:50:19 +0000 (15:50 -0400)]
repo: Also traverse remote refs when enumerating objects
Otherwise ostree --repo=repo prune will delete everything =/
Matthias Clasen [Sat, 25 Aug 2012 17:53:05 +0000 (13:53 -0400)]
Improve the pango trigger
Use the new update-cache mode of pango-querymodules, which
automatically finds the correct cache file location.
Updated to look in both places by Colin Walters <walters@verbum.org>
https://bugzilla.gnome.org/show_bug.cgi?id=682411
Colin Walters [Fri, 24 Aug 2012 20:47:31 +0000 (16:47 -0400)]
libostree: Quiet compiler warning with --disable-libarchive
This function is only used if compiling with it.
Matthias Clasen [Fri, 24 Aug 2012 00:03:40 +0000 (20:03 -0400)]
ostree: Remove duplicate command in help output
The 'remote' command was listed twice. Also, the list
was almost-but-not-quite alphabetically sorted. Fix
that too.
Colin Walters [Thu, 23 Aug 2012 19:19:41 +0000 (15:19 -0400)]
build: Make /etc/kernel scripts default to automatic
When not cross compiling, we can test for /etc/kernel. This fixes the
build automatically on RHEL6 for example.
Colin Walters [Thu, 23 Aug 2012 12:52:23 +0000 (08:52 -0400)]
packages: Add files that should have been in previous commit
These were intended to be with the embedded-dependencies commit.
Colin Walters [Wed, 22 Aug 2012 23:43:52 +0000 (19:43 -0400)]
pull: Only fetch pack files if we want more than 66% of their objects
This avoids some pathologically bad cases where we would fetch a 25MiB
pack file only to extract one 5KiB object from it.
Colin Walters [Wed, 22 Aug 2012 23:43:10 +0000 (19:43 -0400)]
pull: Exit mainloop immediately if we encounter an error
Otherwise we'll just hang.
Colin Walters [Wed, 22 Aug 2012 23:41:44 +0000 (19:41 -0400)]
pack: Support --content-only
This should be useful for implementing more sophisticated packing
strategies.
Also clean up the pack size default handling.
Colin Walters [Wed, 22 Aug 2012 23:40:45 +0000 (19:40 -0400)]
pull: Set an error when we get an unsuccessful HTTP response
Otherwise we'll e.g. try to parse 404 HTML as an object which will
fail.
Giovanni Campagna [Mon, 13 Aug 2012 22:11:50 +0000 (00:11 +0200)]
Add infrastructure for automatic kernel updates
If the distribution supports running arbitrary scripts at kernel
updates, we can hook into it and update the ostree side of things
automatically.
Giovanni Campagna [Mon, 13 Aug 2012 21:47:23 +0000 (23:47 +0200)]
ostadmin: add update-kernel command to regenerate initramfs and boot config
This command regenerates kernel-dependent files. It is meant to
be run after kernel upgrades in the host distribution, to keep
the ostree installation running, and attempts to figure out the
right version automatically (and without changing the ostree checkout)
Giovanni Campagna [Mon, 20 Aug 2012 20:32:17 +0000 (22:32 +0200)]
Don't fail for EPERM when hardlinking
As the manual page doesn't say, but the in-code kernel documentation
shows, hardlinking for normal users can fail for a variety of
reasons (including very common situations such as non regular file
or non writable file), if the owner of the file does not match
the user linking (e.g. when checking out a shadow repo with a root-
owned master).
If that happens, fail back silently to copying instead of aborting
the whole operation.
https://bugzilla.gnome.org/show_bug.cgi?id=682298
Giovanni Campagna [Fri, 17 Aug 2012 15:13:01 +0000 (17:13 +0200)]
ostree-run-triggers: fix typo in filename comparison function
The comparison function was comparing the first file to itself,
and this resulted in triggers being run in random order.
https://bugzilla.gnome.org/show_bug.cgi?id=682297
Colin Walters [Sat, 18 Aug 2012 00:51:36 +0000 (20:51 -0400)]
embedded-dependencies: Fix ACLOCAL_FLAGS, update for libgsystem
* Handle the libgsystem submodule
* ACLOCAL_FLAGS was broken
* Add srpm-embedded
Stef Walter [Fri, 10 Aug 2012 21:12:01 +0000 (23:12 +0200)]
Include pull and other external commands in usage output
Giovanni Campagna [Mon, 13 Aug 2012 21:45:03 +0000 (23:45 +0200)]
ostadmin: fix command line handling in the builtins
Common code was duplicating the command name and not shifting
arguments properly, which thus required the builtins to be aware
of it, instead of being treated like subcommands.
Colin Walters [Tue, 14 Aug 2012 17:11:45 +0000 (13:11 -0400)]
configure: Fix libsoup detection
* The configure arg was named incorrectly; we don't rely on
libsoup-gnome, just libsoup.
* We need to use AS_IF
Colin Walters [Tue, 14 Aug 2012 16:52:46 +0000 (12:52 -0400)]
autogen: Fetch submodules before running automake
Otherwise automake can't find src/libgsystem.
Stef Walter [Fri, 10 Aug 2012 13:55:26 +0000 (15:55 +0200)]
Support non-builtin commands
* Support executing commands in the path
* This makes 'ostree-pull' work as 'ostree pull'
Colin Walters [Sun, 5 Aug 2012 12:50:33 +0000 (08:50 -0400)]
triggers: Print execution time for each trigger
Colin Walters [Fri, 3 Aug 2012 12:49:22 +0000 (08:49 -0400)]
ostadmin: Use g_spawn_check_exit_status()
Just code cleanup.
Colin Walters [Fri, 3 Aug 2012 12:24:03 +0000 (08:24 -0400)]
ostadmin: Change command line for qemu deploy helper
The qemu helper really wants to copy kernel modules, but not
update the system bootloader. Allow it to reuse ostadmin for
this.
Note that our previous path of shelling out to "cp -al" broke because
it refused to make cross-device links.
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: src/libotutil/ot-gio-utils.c
# modified: src/libotutil/ot-gio-utils.h
# modified: src/ostadmin/ot-admin-builtin-deploy.c
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# embedded-dependencies/glib/
# embedded-dependencies/libsoup/
Colin Walters [Fri, 3 Aug 2012 10:09:30 +0000 (06:09 -0400)]
ostadmin: Add --ostree-dir directory
This will be used by the qemu deployment script.
Stef Walter [Mon, 30 Jul 2012 11:04:00 +0000 (13:04 +0200)]
Automatically populate the git submodules in autogen.sh
Colin Walters [Tue, 31 Jul 2012 04:15:02 +0000 (00:15 -0400)]
TODO: update
Colin Walters [Mon, 30 Jul 2012 14:29:45 +0000 (10:29 -0400)]
ostadmin: Print an error message if run as non-root
See https://bugzilla.gnome.org/show_bug.cgi?id=680823
Colin Walters [Thu, 19 Jul 2012 19:11:14 +0000 (15:11 -0400)]
ostadmin: [incompat syntax change] Allow deploying any revision
The old command line syntax assumed you wanted the latest from
a given revision, but to bisect, you really want the ability
to deploy any given one.
Old:
$ ostadmin deploy gnomeos-3.6-i686-{runtime,devel}
New:
$ ostadmin deploy trees/gnomeos-3.6-i686-runtime
$ ostadmin deploy trees/gnomeos-3.6-i686-devel
And note that the deploy directory now changes to:
/ostree/trees/gnomeos-3.6-i686-devel
And now it's possible to:
$ ostadmin deploy trees/gnomeos-3.6-i686-devel trees/gnomeos-3.6-i686-devel^^^
Colin Walters [Thu, 26 Jul 2012 14:17:41 +0000 (10:17 -0400)]
pull: When --depth is specified, ensure we have all requested objects
We were previously optimizing by skipping object traversal if the refs
were unchanged, but if the user specifies a deeper depth than they did
before.
Colin Walters [Thu, 19 Jul 2012 15:01:39 +0000 (11:01 -0400)]
core: Add context when we fail to chmod()/chown()
This helps make things less confusing when we try to create a file not
owned by our uid, such as running ostree-pull as non-root on a
repository owned by root.
Colin Walters [Tue, 17 Jul 2012 12:18:43 +0000 (08:18 -0400)]
core: Drop ot_clear_hashtable for g_clear_pointer()
Colin Walters [Tue, 17 Jul 2012 12:16:54 +0000 (08:16 -0400)]
core: Drop ot_clear_ptrarray in favor of g_clear_pointer
Colin Walters [Tue, 17 Jul 2012 12:14:33 +0000 (08:14 -0400)]
core: Drop ot_clear_gvariant() in favor of g_clear_pointer
Colin Walters [Tue, 17 Jul 2012 12:08:57 +0000 (08:08 -0400)]
core: Remove ot_clear_checksum() in favor of g_clear_pointer()
Colin Walters [Tue, 17 Jul 2012 12:06:20 +0000 (08:06 -0400)]
core: Use g_spawn_check_exit_status()
Colin Walters [Tue, 17 Jul 2012 02:35:18 +0000 (22:35 -0400)]
pull: Only take up one terminal line for status output
And print total bytes transferred at the end.
Colin Walters [Sun, 15 Jul 2012 22:29:15 +0000 (18:29 -0400)]
Fix libgsystem submodule
Colin Walters [Sun, 15 Jul 2012 22:22:41 +0000 (18:22 -0400)]
Hard require GLib 2.34
Anyone wanting to build against an earlier version can use the
embedded-dependencies system.
Colin Walters [Sun, 15 Jul 2012 15:51:57 +0000 (11:51 -0400)]
Add libgsystem as git external
Don't replace ot_lfree and stuff yet though...to much code churn.
Colin Walters [Thu, 12 Jul 2012 15:19:15 +0000 (11:19 -0400)]
pull: Correctly display concurrent libsoup requests
The "status text" code was assuming that libsoup was only doing one
thing at a time, but that's never been the case. Change the code to
display the status of all active requests.
Colin Walters [Sat, 30 Jun 2012 17:49:14 +0000 (13:49 -0400)]
core: drop dead/unused code
The daemon is a nice idea but needs a lot more thought. Let's just
delete the unused code for now and come back to it later.
Colin Walters [Sat, 30 Jun 2012 17:42:22 +0000 (13:42 -0400)]
core: Drop ot_gfile_new_for_path
Not necessary anymore since we switched to GIO_USE_VFS=local in the
binaries.
Colin Walters [Thu, 28 Jun 2012 19:18:10 +0000 (15:18 -0400)]
pull: Fix a memory leak
Colin Walters [Thu, 28 Jun 2012 19:06:18 +0000 (15:06 -0400)]
pull: Fix use-after-free in async fetcher
Refcount the pending data structure.
Colin Walters [Tue, 26 Jun 2012 22:28:59 +0000 (18:28 -0400)]
Release 2012.8
Colin Walters [Thu, 28 Jun 2012 02:37:17 +0000 (22:37 -0400)]
build: Use LDADD libraries to link with, not LDFLAGS
This should fix the build with embedded glib.
Colin Walters [Thu, 28 Jun 2012 00:26:08 +0000 (20:26 -0400)]
Make more compiler warnings into errors
In particular, I want -Werror=format=2 to catch format string bugs.
Colin Walters [Thu, 28 Jun 2012 00:25:56 +0000 (20:25 -0400)]
main: Fix a format string error
Colin Walters [Wed, 27 Jun 2012 19:39:13 +0000 (15:39 -0400)]
embedded deps: Properly quote/handle PATH/LDFLAGS
Colin Walters [Thu, 21 Jun 2012 12:06:27 +0000 (08:06 -0400)]
core: Check out asynchronously
This can be a large performance win in certain circumstances:
* Cold buffer cache (we don't block the whole process)
* Requiring a copy instead of hardlink
Colin Walters [Thu, 21 Jun 2012 15:42:45 +0000 (11:42 -0400)]
tests: Just use OT_TESTS_DEBUG to say "save test data"
Colin Walters [Wed, 20 Jun 2012 19:42:41 +0000 (15:42 -0400)]
pull: Properly propagate errors
Colin Walters [Wed, 20 Jun 2012 19:42:19 +0000 (15:42 -0400)]
build: Fix syntax error in non-embedded build case
Colin Walters [Tue, 19 Jun 2012 20:15:00 +0000 (16:15 -0400)]
build: Various bugfixes for embedded-dependencies
Colin Walters [Tue, 19 Jun 2012 20:14:31 +0000 (16:14 -0400)]
core: Don't silence output of ostree-run-triggers
We want to see which triggers are being run by default.
Colin Walters [Tue, 19 Jun 2012 19:03:16 +0000 (15:03 -0400)]
triggers: Quiet GConf trigger
The default is just way, way too verbose.
Colin Walters [Thu, 14 Jun 2012 20:22:23 +0000 (16:22 -0400)]
Support building with embedded libsoup
Colin Walters [Thu, 7 Jun 2012 21:21:55 +0000 (17:21 -0400)]
Support building with embedded glib
Colin Walters [Thu, 14 Jun 2012 02:09:24 +0000 (22:09 -0400)]
triggers: Fix previous commit
Adrian Perez [Wed, 13 Jun 2012 14:58:53 +0000 (17:58 +0300)]
Add fontconfig trigger
This wil regenerate the fontconfig caches, accounting for modifications in
the system font directories.
Colin Walters [Tue, 12 Jun 2012 18:50:38 +0000 (14:50 -0400)]
core: Fall back to copying checkouts on EMLINK/EXDEV
The previous fix to just ignore symbolic links for hard linking isn't
really good enough, since it can happen for empty files too.
Since this is an optimization, when we get EMLINK, let's instead just
fall back to copying. This also applies to EXDEV.
Colin Walters [Fri, 8 Jun 2012 23:01:20 +0000 (19:01 -0400)]
ostbuild: Move to gnome-ostree module
Since we want to keep "ostree" buildsystem-independent, let's move
ostbuild out into the gnome-ostree module.
http://git.gnome.org/browse/gnome-ostree/commit/?id=
04ba1926e33b442af1e357460e4415d4c0311e87
Colin Walters [Fri, 8 Jun 2012 20:51:51 +0000 (16:51 -0400)]
ostbuild: Fix previous commit (this should have been amended)
Colin Walters [Fri, 8 Jun 2012 20:34:45 +0000 (16:34 -0400)]
ostbuild: Fix -k option to git-mirror
Colin Walters [Thu, 7 Jun 2012 14:19:16 +0000 (10:19 -0400)]
ostbuild: Allow specifying components to git fetch
Colin Walters [Thu, 7 Jun 2012 02:12:49 +0000 (22:12 -0400)]
build: Actually, we need bleeding edge libsoup
The stable version compiles, but just hangs =/